package com.changgou.goods.controller;

import entity.Result;
import entity.StatusCode;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author 1
 * @data 2022/1/8
 */
@RestControllerAdvice//标识该类是一个异常处理类 交给spring容器
public class GlobalExceptionHandler {

    //写一个处理异常的方法
    //@ResponseBody 用于将处理结果转换成json返回到前端 但是由于类上用了@RestControllerAdvice所以不用再写了该注解中包含了@ResponseBody

    // 修饰该方法 标识该方法需要处理的异常类型
    // (value = Exception.class) 表示只要发生Exception及其子类的异常就 由该方法处理
    //只能争对@ReqyestMapping修饰的方法的异常
    @ExceptionHandler(value = Exception.class)
    public Result handleException(Exception e){
        //捕获异常
        e.printStackTrace();
        //处理结果并返回
        return new Result(false, StatusCode.ERROR,e.getMessage());
    }

    /**
     * 不同的业务会有不同的异常抛出
     */
}
